/**
 * @file getid.c
 * @brief   
 * @author  xiaowine (xiaowine@sina.cn)
 * @version 01.00
 * @date    2020-12-16
 * 
 * @copyright Copyright (c) {2020}  xiaowine
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version <th>Author  <th>Description
 * <tr><td>2020-12-16 <td>1.0     <td>wangh     <td>内容
 * </table>
 * ******************************************************************
 * *                   .::::
 * *                 .::::::::
 * *                ::::::::::
 * *             ..:::::::::::
 * *          '::::::::::::
 * *            .:::::::::
 * *       '::::::::::::::..        女神助攻,流量冲天
 * *            ..::::::::::::.     永不宕机,代码无bug
 * *          ``:::::::::::::::
 * *           ::::``:::::::::'        .:::
 * *          ::::'   ':::::'       .::::::::
 * *        .::::'      ::::     .:::::::'::::
 * *       .:::'       :::::  .:::::::::' ':::::
 * *      .::'        :::::.:::::::::'      ':::::
 * *     .::'         ::::::::::::::'         ``::::
 * * ...:::           ::::::::::::'              ``::
 * *```` ':.          ':::::::::'                  ::::.
 * *                   '.:::::'                    ':'````.
 * ******************************************************************
 */
#include "bsp.h"

char ID[40];

u32 temp0, temp1, temp2;
u32 CpuID[3];
u8 temp[12];
#define SIZE sizeof(temp)
u8 Read_ID[SIZE];
u32 ID_data;
/*-----------------------------获取设备ID-------------------------------------*/
u8 GET_ID(void)
{
    //    temp0=*(u32*)(ID_ADDR1); //产品唯一身份标识寄存器（96位）
    //    temp1=*(u32*)(ID_ADDR1+4);
    //    temp2=*(u32*)(ID_ADDR1+8);

    //    temp[0] = (u8)(temp0 & 0x000000FF);
    //    temp[1] = (u8)((temp0 & 0x0000FF00)>>8);
    //    temp[2] = (u8)((temp0 & 0x00FF0000)>>16);
    //    temp[3] = (u8)((temp0 & 0xFF000000)>>24);
    //    temp[4] = (u8)(temp1 & 0x000000FF);
    //    temp[5] = (u8)((temp1 & 0x0000FF00)>>8);
    //    temp[6] = (u8)((temp1 & 0x00FF0000)>>16);
    //    temp[7] = (u8)((temp1 & 0xFF000000)>>24);
    //    temp[8] = (u8)(temp2 & 0x000000FF);
    //    temp[9] = (u8)((temp2 & 0x0000FF00)>>8);
    //    temp[10] = (u8)((temp2 & 0x00FF0000)>>16);
    //    temp[11] = (u8)((temp2 & 0xFF000000)>>24);

    memcpy(temp, (u8 *)ID_ADDR1, 12);
   // ee_WriteBytes(temp,eep_IN_ADDRESS, SIZE);//把ID写进去
    /*-----正常运行时，要把上面这个函数屏蔽	*/
    ee_ReadBytes(Read_ID, eep_IN_ADDRESS, SIZE); //把ID读出来
    if (memcmp(temp, Read_ID, SIZE) == 0)
    {
        return 1;
    }
    else
    {
        return 0;
    }

    //		ID_data =dataset_ID[0];
    //		ID_data =dataset_ID[1];
    // CpuID[0] = ((Read_ID[3] << 24) + (Read_ID[2] << 16) + (Read_ID[1] << 8) + (Read_ID[0] << 0));
    // CpuID[1] = ((Read_ID[7] << 24) + (Read_ID[6] << 16) + (Read_ID[5] << 8) + (Read_ID[4] << 0));
    // CpuID[2] = ((Read_ID[11] << 24) + (Read_ID[10] << 16) + (Read_ID[9] << 8) + (Read_ID[8] << 0));
    // if ((CpuID[0] == 0x05DFFF32) && (CpuID[1] == 0x39354E4B) && (CpuID[2] == 0x43025808)) //仿真后，需要把都出来的ID填写进来
    //     return 1;
    // else
    //     return 0;

    //    memset(ID,0,40);
    //    sprintf(ID,"%.2X%.2X%.2X%.2X%.2X%.2X%.2X%.2X%.2X%.2X%.2X%.2X",temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8],temp[9],temp[10],temp [11]);
    //
}

/*--------------------------------------------------------------------------------
STM32的唯一baiID存在一个固定的地du址，你直接读取地址里面的zhi数据dao就是唯一4102ID了。
唯一ID是一个96位的数据，1653所以你要创建3个32位变量用于存储ID号
static u32 CpuID[3];
接着执行读取函数就可以了。
---------------------------------------------------------------------------------*/

u8 GetLockCode(void)
{
    //	int  SIZE_SUM;
    //获取CPU唯一ID
    CpuID[0] = *(vu32 *)(0x1ffff7e8);
    CpuID[1] = *(vu32 *)(0x1ffff7ec);
    CpuID[2] = *(vu32 *)(0x1ffff7f0);

    return 1;
}
